# 测试用户桩函数 - 直接调用 getpid 和 write

.section .text
.global _start
_start:
    # 设置栈指针（假设栈在 PGSIZE * 2 处）
    li sp, 0x2000    # PGSIZE * 2 = 8192 = 0x2000
    
    # 在栈上准备字符串 "test\n"
    # 字符串字节序列：74 65 73 74 0a
    # 小端序存储：从sp+2开始，74 65 73 74 0a
    addi sp, sp, -16  # 在栈上分配空间
    li t0, 0x0000000a  # "\n" (小端序: 0a 00 00 00)
    sw t0, 6(sp)
    li t0, 0x74736574  # "test" (小端序: 74 65 73 74)
    sw t0, 2(sp)
    
    # 调用 getpid 用户桩函数
    call getpid
    # 返回值在 a0 中，但我们暂时不使用
    
    # 调用 write 用户桩函数
    li a0, 1         # fd = 1 (stdout)
    addi a1, sp, 2   # buf = 栈上的字符串地址
    li a2, 5         # count = 5 (字符串长度，包括\n)
    call write
    
    # 再次调用 getpid
    call getpid
    
    # 无限循环
loop:
    j loop

